Analítica de datos aplicada a estudios sobre desarrollo

Análisis de Regresión

Sobre Mi

Puedes encontrarme en:

Proceso de analítica

Wickham, H. y otros (2023)

MÉTODOS MULTIVARIANTES

Modelos de analítica

Modelando datos

Lo primero es identificar el tipo de relación: lineal o no lineal

Correlación de Pearson, gráficos de dispersión simples o matricial.

Medidas bidimensionales

  • Covarianza: Mide el grado de asociación lineal entre dos variables. Los valores que toma dependen de las unidades de medida de las variables, no están acotados.
  • Correlación: Mide el grado de asociación lineal entre dos variables. Toma valores entre -1 y 1. El signo indica si la relación es positiva o negativa.
  • Gráfico de dispersión: Ilustra sobre cómo es la relación entre dos variables (la forma y la fuerza de la relación). Los datos son pares de medidas para cada individuo.

Correlación lineal

Otros tipos de asociación

Una Correlación de CERO no debe interpretarse como “No existe asociación”, solo permite concluir que no hay asociación lineal pero puede existir una relación de otro tipo. Por ejemplo, Salario Vs. Experiencia. Otro aspecto a considerar es la presencia de datos atípicos (“raros”) que puedan ser influyentes.

El entorno tidyverse

Flujo de trabajo

La gramática de las gráficas

Requiere de al menos 3 elementos:

  • Datos
  • aesthetics: variables.
  • geometría
ggplot(data = datos, aes(x = _, y = _)) +
  geom_point()

Ejemplo

Usemos un conjunto de datos estándar del paquete modelr

library(pacman)
p_load(tidyverse, broom, modelr, 
       skimr, corrplot, psych, gt, gtsummary)

datos <- heights 

Ahora explore el conjunto de datos usando las funciones glimpse() y skim() y discuta la salida

glimpse(datos)
skim(datos)

Haga un diagrama de dispersión estre la estatura y el peso, el ingreso y la edad, el ingreso y los años de educación por sexo

Diagramas de dispersión

ggplot(data = datos, aes(x = height, y = weight)) +
  geom_point() +
  labs(x = 'Estatura', y = 'Peso')

ggplot(data = datos, aes(x = income, y = age)) +
  geom_point(color = "lightblue", alpha=0.1) +
  labs(x = 'Ingreso', y = 'Edad') +
  theme_bw() 

ggplot(data = datos, aes(x = income, y = education)) +
  geom_point(color = "lightblue", alpha=0.1) +
  labs(x = 'Ingreso', y = 'Educación') +
  theme_bw() +
  facet_wrap(~sex, ncol = 2)

Correlación

vars <- datos |> select(height, weight, income, age, education)

cor(vars, use = "complete")
               height      weight      income          age    education
height     1.00000000  0.46819603  0.21795196 -0.018027269  0.064838443
weight     0.46819603  1.00000000  0.05247293 -0.014656703 -0.045021628
income     0.21795196  0.05247293  1.00000000 -0.023703215  0.394288235
age       -0.01802727 -0.01465670 -0.02370322  1.000000000 -0.005998421
education  0.06483844 -0.04502163  0.39428823 -0.005998421  1.000000000
vars <- datos |> select(height, weight, income, age, education)

r <- cor(vars, use = "complete")
corrplot(r)

# vignette("corrplot-intro")

Matriz de correlación

Puede ver una correlación en forma de matriz usando pairs.panels() del paquete psych

pairs.panels(vars, main="Matriz de correlaciones")

ESTUDIO DE CASO

DASS 21

  • El instrumento del DASS 21 permite construir una escala de Depresión, Ansiedad y Estrés (DASS-21). Investigue más sobre su contrucción y propiedades psicométricas. Una versión del instrumento puede ser consultada aquí

  • Explore el conjunto del datos DASS21.sav el cual contiene los resultados para una muestra de 800 personas de Colombia realizada en el año 2022.

library(haven)

dass <- read_sav("datos/DASS21.sav")

Puede usar lapply(dass, function(x) attributes(x)$label) para ver las etiquetas de las preguntas.

Taller

  1. Grafique el diagrama de dispersión y calcule la correlación entre las variables cuantitativas de nivel de depresión, estrés y ansiedad.

  2. ¿Considera que el grado de asociación se diferencia entre hombres y mujeres?, haga los gráficos de dispersión segmentados por sexo

  3. Realice los análisis que le permitan concluir sobre la asociación entre la depresión y la satisfacción con la vivienda, trabajo, amigos, vecinos y el barrio.

  4. Teniendo en cuenta que las variables sobre la participación en actividades no son cuantitativas, investigue y discuta sobre la forma en que podría identificarse alguna asociación con la depresión.

ANÁLISIS DE REGRESIÓN

Conceptos básicos

  • Sea \(y\) una variable de resultado, también llamada variable dependiente o variable de respuesta, y
  • una variable \(X\) conocida como variable explicativa/predictora o variable independiente, también llamada covariable cuando es cuantitativa o factor cuando es de naturaleza cualitativa
  • En el caso de estudio se tiene la medida cuantitativa de la depresión y el grado de satisfacción con sus amigos. ¿cuál sería la variable \(y\) y cuál sería la variable \(X\) en este caso?.
  • Mencione algunos ejemplos de situaciones donde se quiera definir una relación entre una variable \(y\) y una variable \(X\).

Formulación del modelo

\[ y_i = \beta_0 + \beta_1 X_{i} + \varepsilon_i\] En donde

  • \(\beta_0\) es el valor esperado en \(y\) cuando \(X=0\)
  • \(\beta_1\) representa el incremento o decremento en \(y\) por cada unidad de cambio en \(X\)
  • \(\varepsilon_i\) es el componente del error.

Objetivos del modelamiento

Denominar a \(X\) como explicativa o predictora se debe a que el modeladmiento de datos tiene uno de dos propósitos:

  • Modelamiento para explicar las relaciones: se usa cuando desea describir y cuantificar explícitamente la relación entre la variable de resultado \(y\) y un conjunto de variables explicativas \(X\), así como determinar la importancia de cualquier relación.
  • Modelamiento para la predicción: se usa cuando el propósito es predecir una variable de resultado \(y\) basado en la información contenida en un conjunto de variables predictivas \(X\). Acá no necesariamente importa que se pueda comprender cómo se relacionan e interactúan todas las variables entre sí, sino sólo si puede hacer buenas predicciones sobre \(y\) utilizando la información en \(X\).

¿Qué objetivo se persigue?

En cada caso indique si el objetivo del modelo debe ser explicativo o predictivo. Suponga que tenemos interés en identificar:

  1. ¿Cuáles son los factores de riesgo (como el hábito de fumar, la edad, etc) que se asocian con el cáncer de pulmón?.
  1. ¿Qué contenido que le gustaría ver con mayor probabilidad a un usuario de una plataforma digital?.
  1. ¿Cuál es el efecto de la edad de la mujer, nivel educativo de la pareja, hábitos de la pareja (fuma, toma, etc), composición del hogar (con hijos/sin hijos) sobre la violencia doméstica?.

Especificación del modelo

. . .

¿Es un buen modelo?

. . .

Análisis de los residuales

. . .

Pronósticos

. . .

Algoritmos

Algunos modelos son:

  • Lineales: lm().

  • Generalizados: glm().

  • Bayesianos: stan_glm()

  • Penalizados: glmnet()

  • ML: tidymodels

Modelo de regresión lineal simple

  • Puntos: Valores observados
  • Recta: Valores ajustados

Estimación de los parámetros

\[Y_i = \hat{Y}_i + (Y_i - \hat{Y}_i) = Y_i + e_i \]

El objetivo entonces es minimizar

\[\sum_{i=1}^n e_i^2 = \sum_{i=1}^n (Y_i - \hat{Y}_i)^2 = \sum_{i=1}^n (Y_i - [\beta_0 + \beta_1 X_i])^2\]

El procedimiento se conoce como Mínimos Cuadrados Ordinarios (MCO).

Ejemplo

Considere nuevamente los datos del paquete modelr

modelo1 <- lm(income ~ education, data = datos)

Teniendo en cuenta que el ingreso está medido en dolares al año:

  • ¿cuál debe ser la interpretación de los coeficientes de regresión?
  • ¿cómo debe interpretarse el p-value?
library(gtsummary)
tbl_regression(modelo1, intercept = TRUE)
Characteristic Beta 95% CI1 p-value
(Intercept) -70,571 -76,815, -64,327 <0.001
education 8,459 7,996, 8,923 <0.001
1 CI = Confidence Interval

Visualización

ggplot(datos, aes(x = education, y = income)) +
  geom_point() +
  labs(x = "Años de educación", y = "Ingreso anual",
       title = "Relación entre el ingreso y los años de educación") +  
  geom_smooth(method = "lm", formula = 'y ~ x') + 
  theme_classic()

¿Es bueno el modelo?

Descomposición de la varianza

\[\sum_{i=1}^n (Y_i - \hat{Y}_i)^2 = \sum_{i=1}^n (Y_i - \bar{Y})^2+ \sum_{i=1}^n e^2\]

Bondad del ajuste

El coeficiente de determinación es un indicador entre 0 y 1:

\[\sum_{i=1}^n (Y_i - \hat{Y}_i)^2 = \sum_{i=1}^n (Y_i - \bar{Y})^2+ \sum_{i=1}^n e^2\]

\[SCT = SCR + SCE\]

Se deduce que:

\[R^2 = \frac{SCR}{SCT} = 1 - \frac{SCE}{SCT}\]

El valor de \(R^2\) está entre 0 y 1.

Bondad del ajuste

tab <- modelo1 |> glance() 
gt::gt(tab)
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual nobs
0.1547128 0.1545919 51407.62 1280.111 1.313761e-257 1 -85815.3 171636.6 171657.1 1.848335e+13 6994 6996
  • ¿cuál debe ser la interpretación del \(R^2\)?
  • ¿cómo debe interpretarse el p-value?
tbl_regression(modelo1, intercept = TRUE) |> 
  add_glance_table(include = c(r.squared, p.value))
Characteristic Beta 95% CI1 p-value
(Intercept) -70,571 -76,815, -64,327 <0.001
education 8,459 7,996, 8,923 <0.001
0.155
p-value <0.001
1 CI = Confidence Interval

Variable explicativa categórica

Podemos preguntarnos si el ingreso depende del sexo de la persona. Para ello es clave que la variable categórica sea de clase factor.

Revisión de la clase de la variable del sexo

class(datos$sex)
[1] "factor"
levels(datos$sex)
[1] "male"   "female"
datos$sex <-relevel(datos$sex, ref = "male") 

El ajuste del modelo no cambia, R identificará que la variable sexo es cualitativa

Taller: DASS21

  1. Ajuste los modelos de regresión simple para interpretar las relaciones entre:
  • Depresión y Satisfacción con su trabajo
  • Ansiedad y Satisfacción con su trabajo
  • Depresión y Satisfacción con su trabajo
  1. ¿Considera que el grado de asociación se diferencia entre hombres y mujeres?, haga los gráficos de dispersión segmentados por sexo

  2. Realice los análisis que le permitan concluir sobre la asociación entre la depresión y la satisfacción con la vivienda, trabajo, amigos, vecinos y el barrio.

  3. Teniendo en cuenta que las variables sobre la participación en actividades no son cuantitativas, investigue y discuta sobre la forma en que podría identificarse alguna asociación con la depresión.

Exporting into PDF

You can use the function pagedown::chrome_print() to print the HTML version into a PDF!

pagedown::chrome_print("path-to-file.html")